package com.nanhai.buddhist.college.module.study.controller.admin.attendancemanagement.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static com.nanhai.buddhist.college.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 考勤管理 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class AttendanceManagementBaseVO {

    @ApiModelProperty(value = "考勤id", required = true)
    private String id;

    @ApiModelProperty(value = "考勤用户信息(关联用户表)", required = true)
    private String userId ;

    @ApiModelProperty(value = "请假天数(单位:天)", required = true)
    @NotNull(message = "请假天数(单位:天)不能为空")
    private Double leaveDays;

    @ApiModelProperty(value = "请假开始时间", required = true)
    @NotNull(message = "请假开始时间不能为空")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = "GMT+8")
    @DateTimeFormat(pattern =FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date leaveStartTime;

    @ApiModelProperty(value = "请假结束时间", required = true)
    @NotNull(message = "请假结束时间不能为空")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = "GMT+8")
    @DateTimeFormat(pattern =FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date leaveEndTime;

    @ApiModelProperty(value = "请假说明", required = true)
    private String leaveExplain;

    @ApiModelProperty(value = "请假事由id", required = true)
    private String reasonId;

    @ApiModelProperty(value = "请假用户类型", required = true)
    private String userType;

    @ApiModelProperty(value = "抄送人id", required = true)
    private String copySendId;

    @ApiModelProperty(value = "审批状态", required = true)
    private Integer approvalStatus;

}
